pwd
cd C:\Users\alpha\Documents\work\burned pixels\ecoregions_countries_climates_continents
import geopandas as gpd
import matplotlib.pyplot as plt
import pickle
import pandas as pd
import numpy as np
import calendar
import matplotlib.cm as cm
import matplotlib.colors as cls
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
#latex
import matplotlib
matplotlib.rcParams['mathtext.fontset'] = 'custom'
matplotlib.rcParams['mathtext.rm'] = 'Times New Roman'
matplotlib.rcParams['mathtext.it'] = 'Times New Roman:italic'
matplotlib.rcParams['mathtext.bf'] = 'Times New Roman:bold'
matplotlib.rcParams["text.latex.preamble"].append(r'\usepackage{faktor}')
clima = gpd.read_file('clima')
clima.columns
clima['SUM_Area'].head()
data_columns = clima.columns[2:2+17*12]
data_columns
inter_cols = {}
for yr in range(17):
inter_cols[yr] = data_columns[12*yr:12*yr +12]
area = clima['SUM_Area']*1e-6
intra_cols = {}
for mo in range(12):
intra_cols[mo] = [data_columns[mo + yr *12 ] for yr in range(17)]
for yr in range(17):
inter = clima[ inter_cols[yr]].sum(axis=1)/area
label = 'inter_' + str(yr +2001)
clima= clima.assign(label=inter)
clima = clima.rename(columns={'label': label})
clima.plot(column='inter_2001', cmap='OrRd')
def draw_map(df,column,title=None,vmin=0,vmax=1,name='name',dpi=100):
fig, ax = plt.subplots(figsize=(12, 8))
ax.set_aspect('equal')
ax = df.plot(ax =ax, column=column, cmap='OrRd',vmin=vmin, vmax=vmax)
ax.set_axis_off()
norm = cls.Normalize(vmin, vmax)
cmmapable = cm.ScalarMappable(norm, 'OrRd')
cmmapable._A = []
cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal")
cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig(name, dpi=dpi, bbox_inches='tight')
inter_columns = clima.columns[-17:]
inter_max = clima[inter_columns].max().max()
for mo in range(12):
intra = clima[ intra_cols[mo]].sum(axis=1)/(17*area)
label = 'intra_{:02}'.format(mo)
clima = clima.assign(label=intra)
clima = clima.rename(columns={'label': label})
intra_columns = clima.columns[-12:]
intra_max = clima[intra_columns].max().max()
clima.plot(column='intra_01', cmap='OrRd')
#draw_map(df,column,title=None,vmin=0,vmax=1,name='name',dpi=100)
column = 'intra_{:02}'.format(1)
mo_name = calendar.month_name[1+ 1]
title = r' Burned Area Pixels/$\mathrm{Km}^{2}$ by climate 2001-2017 ' + mo_name
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'TESTEintra_ecoregions_{}'.format(calendar.month_name[mo + 1].lower())
draw_map(clima,column,title=title,vmin=0,vmax=intra_max,name=name)
#draw_map(df,column,title=None,vmin=0,vmax=1,name='name',dpi=100)
column = 'inter_{}'.format(2001)
mo_name = calendar.month_name[1+ 1]
title = r' Burned Area Pixels/$\mathrm{Km}^{2}$ by climate 2001-2017 ' +'2001'
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'TESTEinter_ecoregions_{}'.format(2001)
draw_map(clima,column,title=title,vmin=0,vmax=inter_max,name=name)
%%time
for yr in range(17):
column = 'inter_{}'.format(yr +2001)
yr_name = str(yr +2001)
#"Burnt area pixels (#/km2) by biome in 2001
title = r'Burned area pixels ($\#/\mathrm{km}^{2}$) by climate in ' +yr_name
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'inter_climas_{}'.format(yr +2001)
draw_map(clima,column,title=title,vmin=0,vmax=inter_max,name=name)
%%time
for mo in range(12):
column = 'intra_{:02}'.format(mo)
mo_name = calendar.month_name[mo + 1]
#"Burnt area pixels (#/km2) by biome in Janury (2001-2017)"
title = r'Burned area pixels ($\#/\mathrm{km}^{2}$) by climate in ' +mo_name + ' (2001-2017)'
#title = r' Burned Area Pixels/$\mathrm{Km}^{2}$ by climate 2001-2017 ' + mo_name
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'intra_climas_{:02}'.format(mo)
draw_map(clima,column,title=title,vmin=0,vmax=intra_max,name=name)
data_columns
total = clima[data_columns].sum(axis=1)/17
total = total/area
total.plot()
clima= clima.assign(total=total)
clima.plot(column='total',cmap='OrRd')
total.max()
total.min()
clima.plot(column='total',cmap='OrRd', vmin=0,vmax=total.max())
clima.plot(column='total',cmap='OrRd', scheme='quantiles')
column = 'total'
title = r' Burned Area Pixels/$\mathrm{Km}^{2}$ by climate 2001-2017 '
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'total_climas'
draw_map(clima,column,title=title,vmin=0,vmax=total.max(),name=name)
column = 'total'
title = r' Burned Area Pixels/$\mathrm{Km}^{2}$ by climate 2001-2017 '
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'total_climas'
draw_map(clima,column,title=title,vmin=0,vmax=total.max(),name=name)
yr =0
column = 'inter_{}'.format(yr +2001)
yr_name = str(yr +2001)
#"Burnt area pixels (#/km2) by biome in 2001
title = r'Burned area pixels ($\#/\mathrm{km}^{2}$) by climate in ' +yr_name
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'inter_climas_{}'.format(yr +2001)
draw_map(clima,column,title=title,vmin=0,vmax=inter_max,name=name)
yr =0
column = 'inter_{}'.format(yr +2001)
yr_name = str(yr +2001)
#"Burnt area pixels (#/km2) by biome in 2001
title = r'Burned area pixels ($\#/\mathrm{km}^{2}$) by climate in ' +yr_name
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'inter_climas_{}'.format(yr +2001)
draw_map(clima,column,title=title,vmin=0,vmax=inter_max,name=name)
clima.columns[-20:]
from scipy.stats import boxcox
test_column = boxcox(clima.inter_2001 + 1e-25)
any(clima.inter_2001 + 1e-10 <=0)
clima.inter_2001 + 1e-25
clima.inter_2001.size
test_column[0]
clima[inter_columns].min().min()
clima = clima.assign(test_column =test_column[0])
yr =0
column = 'test_column'
yr_name = str(yr +2001)
#"Burnt area pixels (#/km2) by biome in 2001
title = r'Burned area pixels (#/$\mathrm{km}^{2}$) by climate in ' +yr_name
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'teste'
draw_map(clima,column,title=title,vmin=test_column[0].min(),vmax=test_column[0].max(),name=name)
clima.plot(column='inter_2001',cmap='OrRd' ,scheme='quantiles')
yr_name = '2001'
title = r'Burned area pixels ($\mathrm{\#}/\mathrm{km}^{2}$) by climate in ' +yr_name
plt.text(0.1,0.5,title);
!set PATH=%PATH%;C:\Program Files\MiKTeX 2.9\miktex\bin\x64
!path
lambdas = []
for yr in range(17):
column= 'inter_{}'.format(2001 + yr)
test_column, lbd = boxcox(clima[column] + 1e-25)
lambdas.append(lbd)
lmbda= sum(lambdas)/len(lambdas)
maxs = []
mins = []
for yr in range(17):
column= 'inter_{}'.format(2001 + yr)
test_column = boxcox(clima[column] + 1e-25,lmbda=lmbda)
maxs.append(test_column.max())
mins.append(test_column.min())
lambdas
maxs
mins
box_min = min(mins)
box_delta =max(maxs) - box_min
test_column = (boxcox(clima.inter_2001 + 1e-25,lmbda=lmbda) - box_min)/box_delta
test_column
clima = clima.assign(test_column =test_column)
yr =0
column = 'test_column'
yr_name = str(yr +2001)
#"Burnt area pixels (#/km2) by biome in 2001
title = r'Burned area pixels (#/$\mathrm{km}^{2}$) by climate in ' +yr_name
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'teste'
draw_map(clima,column,title=title,vmin=0,vmax=1,name=name)
for yr in range(17):
column = 'inter_{}'.format(yr +2001)
test_column = (boxcox(clima[column] + 1e-25,lmbda=lmbda) - box_min)/box_delta
clima = clima.assign(test_column =test_column)
yr_name = str(yr +2001)
#"Burnt area pixels (#/km2) by biome in 2001
title = r'Burned area index (#/$\mathrm{km}^{2}$) by climate in ' +yr_name
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'inter_climas_index_{}'.format(yr +2001)
draw_map(clima,'test_column',title=title,vmin=0,vmax=1,name=name)
lambdas = []
for mo in range(12):
column= 'intra_{:02}'.format(mo)
test_column, lbd = boxcox(clima[column] + 1e-25)
lambdas.append(lbd)
lmbda= sum(lambdas)/len(lambdas)
lambdas
lmbda
maxs = []
mins = []
for mo in range(12):
column= 'intra_{:02}'.format(mo)
test_column = boxcox(clima[column] + 1e-25,lmbda=lmbda)
maxs.append(test_column.max())
mins.append(test_column.min())
box_min = min(mins)
box_delta =max(maxs) - box_min
for mo in range(12):
column = 'intra_{:02}'.format(mo)
test_column = (boxcox(clima[column] + 1e-25,lmbda=lmbda) - box_min)/box_delta
clima = clima.assign(test_column =test_column)
mo_name = calendar.month_name[mo + 1]
#"Burnt area pixels (#/km2) by biome in Janury (2001-2017)"
title = r'Burned area index (#/$\mathrm{km}^{2}$) by climate in ' +mo_name + ' (2001-2017)'
#title = r' Burned Area Pixels/$\mathrm{Km}^{2}$ by climate 2001-2017 ' + mo_name
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'intra_climas_index_{:02}'.format(mo)
draw_map(clima,'test_column',title=title,vmin=0,vmax=1,name=name)
clima[column]
lmbda
(boxcox(clima[column] + 1e-25,lmbda=lmbda) - box_min)/box_delta
column = 'total'
test_column, lbd = boxcox(clima[column] + 1e-25)
test_column = (test_column - test_column.min())/(test_column.max() - test_column.min())
clima = clima.assign(test_column =test_column)
title = r'Burned area index (#/$\mathrm{km}^{2}$) by climate in (2001-2017)'
#title = r'Burned Area Pixels/$\mathrm{Km}^{2}$ by Climate 2001-2017 {} '.format(calendar.month_name[mo + 1])
#title =(r'ABC123 vs $\mathrm{ABC123}^{123}$')
name = 'total_climas_index'
draw_map(clima,'test_column',title=title,vmin=0,vmax=1,name=name)
from scipy.stats import probplot, norm
probplot(clima.intra_11, dist=norm, plot=plt.gca());
probplot(clima.test_column, dist=norm, plot=plt.gca());